#pragma once
#include "GameObject.hpp"
#include "ScriptComponent.hpp"
#include "SLB.hpp"

namespace Typhoon {
	class GameWorld;
	class ScriptGameObject
	{
	public:

		static void SetWorld(GameWorld* world);

		ScriptGameObject();
		~ScriptGameObject();

		ScriptComponent* AddComponent(ScriptComponent* component);
		void RemoveComponent(ScriptComponent* component);
		ScriptComponent* GetComponent(ScriptComponent* component);
		
		static void InitScripting();

		void Debug(std::string name);

	private:
		GameObject* gameObject;

		static GameWorld* world;

	};
}
